# PO (Gettext)

Languine supports PO files, the widely-used Gettext localization format. This format is popular in many programming environments, particularly in Linux applications and PHP frameworks, offering support for context, plurals, and translator comments.

---

## Setting Up

First, make sure you've got a languine.json config file in your project root. Here's an example:

```json
{
  "locale": {
    "source": "en",
    "targets": ["sv", "de", "fr"]
  },
  "files": {
    "po": {
      "include": ["locales/[locale]/LC_MESSAGES/messages.po"]
    }
  }
}
```

## Translating

With your config set, run:

```bash
npx languine@latest translate
```

When you run this command, Languine will:

- Load your source PO file (e.g., locales/en/LC_MESSAGES/messages.po)
- Detect any new or modified translation strings
- Generate translations for your target languages
- Create or update the target language PO files (e.g., locales/sv/LC_MESSAGES/messages.po)
- Preserve metadata, contexts, and plural forms
- Maintain translator comments and reference information
